<?php

$this->PhpExcel->Excel();
if ($tipoReporte == 1) {
    $this->PhpExcel->titulo_reporte("MOVIMIENTOS INVENTARIO", "MOVIMIENTOS INVENTARIO");
    $this->PhpExcel->titulo_hoja("MOVIMIENTOS INVENTARIO");

    $listadoReporte = array('normal' => 'Normal', 'detallado' => 'Detallado');
    $ext = ($formato == 1) ? 'xlsx' : 'ods';
    $nombre = "LISTADO_MOVIMIENTOS_INVENTARIO" . date("d_m_Y");

    $this->PhpExcel->hoja->getDefaultStyle()->applyFromArray(array('font' => array('name' => 'arial', 'size' => 10)));
    $this->PhpExcel->hoja->getStyle('A1')->applyFromArray(array('font' => array('bold' => true, 'size' => 12, 'color' => array('rgb' => '8B0000'))));
    $this->PhpExcel->hoja->getStyle('A2')->applyFromArray(array('font' => array('bold' => true, 'size' => 11)));
    $this->PhpExcel->hoja->getStyle('A3')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));
    $this->PhpExcel->hoja->getStyle('A4')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));

    $arrStyleTitle = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
            'startcolor' => array('rgb' => '81DAF5')),
        'font' => array('bold' => true, 'color' => array('rgb' => PHPExcel_Style_Color::COLOR_WHITE)),
        'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

    $arrStyleTitleuno = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
            'startcolor' => array('rgb' => 'EFFBFB')));

    $arrborderTitleuno = array('style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array('rgb' => '000000'));

    $this->PhpExcel->configura_celda('A', 5); //#
    $this->PhpExcel->configura_celda('B', 30); //AGENCIA
    $this->PhpExcel->configura_celda('C', 14); //FECHA
    $this->PhpExcel->configura_celda('D', 20); //FECHA CONTABLE
    $this->PhpExcel->configura_celda('E', 30); //DOCUMENTO
    $this->PhpExcel->configura_celda('F', 30); //TIPO MOV.
    $this->PhpExcel->configura_celda('G', 10); //CANT MOV.
    $this->PhpExcel->configura_celda('H', 20); //CODIGO MAT.
    $this->PhpExcel->configura_celda('I', 60); //NOMBRE MAT.
    $index_title = 6;
    $index_detail = 0;
    $oac = $this->PhpExcel->xls->getActiveSheet();
    $oac->setAutoFilter('A6:I6'); // AUTO FILTER
    $j = 0;
    //$tit = array('#','AGENCIA','FECHA','FECHA CONTABLE','DOCUMENTO','TIPO MOV.','CODIGO MAT.','NOMBRE MAT.','CANT MOV.');
    $tit[] = array('#', 'STR', 'C');
    $tit[] = array('AGENCIA', 'STR', 'C');
    $tit[] = array('FECHA', 'STR', 'C');
    $tit[] = array('FECHA CONTABLE', 'STR', 'C');
    $tit[] = array('DOCUMENTO', 'STR', 'C');
    $tit[] = array('TIPO MOV.', 'STR', 'C');
    $tit[] = array('CANT MOV.', 'STR', 'C');
    $tit[] = array('CODIGO MAT. ', 'STR', 'C');
    $tit[] = array('NOMBRE MAT.', 'STR', 'C');

    $con = 1;
    foreach ($tit as $columnTitle) {
        $this->PhpExcel->valor_celda($j, $index_title, $columnTitle);
        $oColumn = $this->PhpExcel->obtener_columna($j, $index_title);
        $oRow = $this->PhpExcel->obtener_fila($j, $index_title);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->applyFromArray($arrStyleTitle);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
        $j++;
    }

    $fila = 7;
    foreach ($tienda_ciclo as $base) {
        $idTie = $this->Interfaz->id($id_tiendas[$base['Tienda']['codigo']]);
        foreach ($data[$base['Tienda']['codigo']] as $datos) {
            $nombreTienda = $this->Interfaz->mayuscula($tienda_oculta[$datos['MovimientoDetalle']['centro_recepcion']]);
            $nombreCentro = (empty($datos['MovimientoDetalle']['centro_origen'])) ? $nombreTienda : $datos['MovimientoDetalle']['centro_origen'] . "-" . $this->Interfaz->mayuscula($listaCentros[$datos['MovimientoDetalle']['centro_origen']]);
            $valores = array();
            $valores[] = array(($con), 'STR', 'C');
            $valores[] = array($nombreTienda, 'STR', 'L');
            $valores[] = array($this->Time->format('d-m-Y', $datos['Movimiento']['fecha']), 'STR', 'C');
            $valores[] = array($this->Time->format('d-m-Y', $datos['Movimiento']['fecha_movimiento']), 'STR', 'C');
            $valores[] = array($this->Interfaz->mayuscula($datos['Movimiento']['documento']), 'STR', 'L');
            $valores[] = array($listaMovimientos[$datos['MovimientoDetalle']['tipo_movimiento_id']], 'STR', 'L');
            $valores[] = array($datos['MovimientoDetalle']['cantidad'], 'N', 'R');
            $valores[] = array($this->Interfaz->mayuscula($datos['Material']['codigo']), 'STR', 'C');
            $valores[] = array($this->Interfaz->mayuscula($datos['Material']['nombre']), 'STR', 'L');


            $columna = 0;

            foreach ($valores as $valor) {
                $this->PhpExcel->valor_celda($columna, $fila, $valor);
                $oColumn = $this->PhpExcel->obtener_columna($columna, $fila);
                $oRow = $this->PhpExcel->obtener_fila($columna, $fila);
                if ($fila % 2 == 0) {
                    $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->applyFromArray($arrStyleTitleuno);
                } /*else {
                    $this->PhpExcel->hoja->getStyle($oColumn.$oRow)->applyFromArray($arrStyleTitleuno);
                }*/
                $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
                $columna++;
            }
            $fila++;
            $con++;
        }
    }
} else {
    $ext = ($formato == 1) ? 'xlsx' : 'ods';
    $arrStyleTitleuno = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
            'startcolor' => array('rgb' => 'EFFBFB')));

    $arrborderTitleuno = array('style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array('rgb' => '000000'));

    $nombre = 'MOVIMIENTOS_INVENTARIO' . date("d_m_Y");

    $tit = array('#', 'AGENCIA', 'FECHA', 'FECHA CONTABLE', 'DOCUMENTO', 'TIPO MOV.', 'CANT MOV.', 'CODIGO MAT.', 'NOMBRE MAT.');

    for ($k = 0; $k < count($tienda_ciclo); $k++) {
        if ($k > 0) {
            $this->PhpExcel->xls->createSheet();
        }
        $this->PhpExcel->xls->setActiveSheetIndex($k);
        $oac = $this->PhpExcel->xls->getActiveSheet();
        $oac->setTitle($tienda_ciclo[$k]['Tienda']['codigo']);
        $oac->getDefaultStyle()->applyFromArray(array('font' => array('name' => 'arial', 'size' => 10)));
        $oac->getStyle('A1')->applyFromArray(array('font' => array('bold' => true, 'size' => 12, 'color' => array('rgb' => '8B0000'))));
        $oac->getStyle('A2')->applyFromArray(array('font' => array('bold' => true, 'size' => 11)));
        $oac->getStyle('A3')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));
        $oac->getStyle('A4')->applyFromArray(array('font' => array('bold' => false, 'size' => 10)));
        $oac->setCellValue('A1', "AGROPATRIA - PUNTO DE VENTA");
        $oac->setCellValue('A2', $this->Interfaz->mayus("LISTADO_MOVIMIENTOS_INVENTARIO") . ' TIENDA ' . $this->Interfaz->mayus($tienda_oculta[$tienda_ciclo[$k]['Tienda']['codigo']]));
        $oac->setCellValue('A3', "Fecha: " . date("d-m-Y"));
        $oac->setCellValue('A4', "Hora: " . date("h:i"));
        $oac->getColumnDimension('A')->setWidth(5);
        $oac->getColumnDimension('B')->setWidth(30);
        $oac->getColumnDimension('C')->setWidth(14);
        $oac->getColumnDimension('D')->setWidth(20);
        $oac->getColumnDimension('E')->setWidth(30);
        $oac->getColumnDimension('F')->setWidth(30);
        $oac->getColumnDimension('G')->setWidth(10);
        $oac->getColumnDimension('H')->setWidth(20);
        $oac->getColumnDimension('I')->setWidth(60);


        $oac->setAutoFilter('A6:I6'); // AUTO FILTER
        $index_title = 6;
        $index_detail = 0;
        $j = 0;
        foreach ($tit as $columnTitle) {
            @$oac->getCellByColumnAndRow($j, $index_title)->setValueExplicit($columnTitle, PHPExcel_Cell_DataType::TYPE_STRING);
            $oC = $oac->getCellByColumnAndRow($j, $index_title)->getColumn();
            $oR = $oac->getCellByColumnAndRow($j, $index_title)->getRow();
            $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $oac->getStyle($oC . $oR)->applyFromArray($arrStyleTitleuno);
            $oac->getStyle($oC . $oR)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
            $j++;
        }
        $fila = 7;
        $num = 1;
        if (is_array($data[$tienda_ciclo[$k]['Tienda']['codigo']]) && count($data[$tienda_ciclo[$k]['Tienda']['codigo']]) > 0) {
            foreach ($data[$tienda_ciclo[$k]['Tienda']['codigo']] as $key => $datos) {
                $nombreTienda = $this->Interfaz->mayuscula($tienda_oculta[$datos['MovimientoDetalle']['centro_recepcion']]);
                $nombreCentro = (empty($datos['MovimientoDetalle']['centro_origen'])) ? $nombreTienda : $datos['MovimientoDetalle']['centro_origen'] . "-" . $this->Interfaz->mayuscula($listaCentros[$datos['MovimientoDetalle']['centro_origen']]);
                $valores = array();
                $valores[] = array(($num), 'STR', 'C');
                $valores[] = array($nombreTienda, 'STR', 'L');
                $valores[] = array($this->Time->format('d-m-Y', $datos['Movimiento']['fecha']), 'STR', 'C');
                $valores[] = array($this->Time->format('d-m-Y', $datos['Movimiento']['fecha_movimiento']), 'STR', 'C');
                $valores[] = array($this->Interfaz->mayuscula($datos['Movimiento']['documento']), 'STR', 'L');
                $valores[] = array($listaMovimientos[$datos['MovimientoDetalle']['tipo_movimiento_id']], 'STR', 'L');
                $valores[] = array($datos['MovimientoDetalle']['cantidad'], 'N', 'R');
                $valores[] = array($this->Interfaz->mayuscula($datos['Material']['codigo']), 'STR', 'C');
                $valores[] = array($this->Interfaz->mayuscula($datos['Material']['nombre']), 'STR', 'L');
                $columna = 0;
                foreach ($valores as $valor) {
                    $oC = $oac->getCellByColumnAndRow($columna, $fila)->getColumn();
                    $oR = $oac->getCellByColumnAndRow($columna, $fila)->getRow();
                    if ($valor[1] == 'STR'){
                        $oac->getCellByColumnAndRow($columna, $fila)->setValueExplicit($valor[0], PHPExcel_Cell_DataType::TYPE_STRING);
                    }else{
                        $oac->getCellByColumnAndRow($columna, $fila)->setValueExplicit($valor[0], PHPExcel_Cell_DataType::TYPE_NUMERIC);
                        $oac->getStyle($oC.$oR)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
                    }

                    if ($valor[2] == 'L')
                        $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
                    else if ($valor[2] == 'C')
                        $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                    else
                        $oac->getStyle($oC . $oR)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

                    if ($fila % 2 == 0) {
                        $oac->getStyle($oC . $oR)->applyFromArray($arrStyleTitleuno);
                    }
                    $oac->getStyle($oC . $oR)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
                    $columna++;
                }
                $fila++;
                $num++;
                $valores = null;
            }
        }
    }
    $this->PhpExcel->xls->setActiveSheetIndex(0);
}
$this->PhpExcel->mostrar($nombre, $ext);
?>
